In a classical switch or router, the packet forwarding path (the data path) and the high level routing/forwarding decisions (the control path) are in the same device. The data path may be implemented using one or more hardware chips, such as ASICs or FPGAs, and the control path may be implemented via software running on a CPU that communicates with the data path's hardware chip(s) to configure flow-tables in the switch, typically in the form of TCAMs associated with these ASICs or FPGAs. Once a TCAM table is set up by the software, packets along the data path can be forwarded via the hardware chips at line rate.
In some cases, it may be difficult for researchers to experiment new protocols in a large scale utilizing existing commercial switches and routers in the Internet. This is because existing switches and routers are specifically configured to operate based on standard protocol. Also, the configuring of existing switches and routers may involve proprietary software and/or algorithms that are known only to the vendors of the switches and routers. Without knowing such proprietary software and algorithms, it would be impossible to configure the switch or router so that it will behave in a certain desired manner. Sometimes, a switch may have a management interface that allows a user to perform simple management tasks on the switch. However, such management interface has very limited use, and does not allow the user to modify the behavior of the switch (such as by changing one or more entries in a flow table in the switch), and certainly cannot be used to configure the switch to make it operate based on non-standard protocol.